sasecurityfandomcom-20200214-history
Cedric
Software engineering doesn't exist http://beust.com/weblog/2007/07/07/in-defense-of-design-patterns/ "...To make a parallel: imagine a world where every time a new construction takes place (say, a bridge), the future of that bridge depends on the team of engineers and workers you choose to build it…" "... In a lot of places the authors point out situations where C++ programmers would implement a pattern one way, and Smalltalk programmers might use the pattern another way...." from editorial review of Design patterns amazon.com "... A word of warning and encouragement: Don't worry if you don't understand this book completely on the first reading. We didn't understand it all on the first writing ..." which is what happens with a category mistake(Noun. How could so many smart people then not see it? "...Everyone pretends to admire the clothes except one little boy who yells out "But the Emperor has no clothes." The moral is that because of pretentiousness and social hypocricy people pretend to know about or agree with certain things because it makes them look better...."emperor "...Design patterns can be our best ally when used correctly..." https://simpleprogrammer.com/dont-get-obsessed-design-patterns . Would you drive on a bridge where the civil engineer was informed that this time it might not collapse if only he got his cement mixing "pattern" right? Civil engineering involves standardized procedures, with Oop we have a category mistake and hence standardization is impossible. plover https://www.amazon.com/exec/obidos/ASIN/0195019199/artificeinc A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure Series) from which the gof4 got their idea. https://perl.plover.com/yak/design/samples/slide001.html The "Design Patterns" solution is to turn the programmer into a fancy macro processor As an architect by trade Alexander is trying to solve a central problem of architectural design, His books inspired the "Design Patterns" movement In particular, A Pattern Language (1979). Suppose you want to design a college campus You must delegate some of the design to the students and professors Otherwise, the Physics building won't work well for the physics people No architect knows enough about about what physics people need to do it all themselves But you can't delegate the design of every room to its occupants Because then you will get a giant pile of rubble. The problem Alexander is trying to solve is: How can you distribute responsibility for design through all levels of a large hierarchy, while still maintaining consistency and harmony of overall design? This is also a fundamental problem of computer systems development. He suggests using Pattern Languages A dictionary of terms laying out a set of basic design decisions and presents over 250 examples, including: 'alcoves' 'entrance transition' 'ceiling height variety' 'wings of light' 'cascade of roofs' 'secret place' 'something roughly in the middle' Design discussions are conducted using this language Design at all levels springs from this common base Not every room will have 'alcoves' or 'ceiling height variety' Many will The common language promotes commonality of design The pattern language does not tell you how to design anything It helps you decide what should be designed You get to make up whatever patterns you think will lead to good designs The pattern language does not tell you how to design anything It helps you decide what should be designed You get to make up whatever patterns you think will lead to good designs The Gang-of-Four idea is to discover existing patterns of software development Then program people to implement them habitually Not the same thing at all Much less profound Also much less human. "Design Patterns" means a library of C++ code templates. https://perl.plover.com/yak/design/samples/note.html links to about fifteen commentry websites on Design patterns. https://web.archive.org/web/20040307052834/http://radio.weblogs.com:80/0100812/2002/07/14.html blog https://blog.codinghorror.com links oop Category:Oop Category:Oop design patterns